operator(*) Interface

public interface operator(*)

Module Procedures

private pure function rc_multiply(x, y) result(rst)

Overloads * to multiply corresponding elements, not compute a dot product. Unequal counts cause ERROR STOP with FS_ARRAY_SIZE_ERROR.

Arguments

Type IntentOptional Attributes Name
class(real_column), intent(in) :: x

The left and right operands; unallocated storage is treated as empty.

class(real_column), intent(in) :: y

The left and right operands; unallocated storage is treated as empty.

Return Value type(real_column)

An independent, unnamed column of x * y, with the operands' count.

private pure function rc_multiply_scalar(x, y) result(rst)

Overloads * to multiply each column value by a scalar.

Arguments

Type IntentOptional Attributes Name
class(real_column), intent(in) :: x

The left operand real_column; unallocated storage is empty.

real(kind=real64), intent(in) :: y

The scalar right operand, broadcast to every row.

Return Value type(real_column)

An independent, unnamed column of x * y, with x's count.

private pure function scalar_multiply_rc(x, y) result(rst)

Overloads * to multiply a scalar by each column value.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: x

The scalar left operand, broadcast to every row.

class(real_column), intent(in) :: y

The right operand real_column; unallocated storage is empty.

Return Value type(real_column)

An independent, unnamed column of x * y, with y's count.